The City of Melbourne regularly hosts both public and private events ranging from festivals and cultural shows to weddings and workshops. However, unstructured event planning may lead to crowding, traffic issues, or poor accessibility.
This use case explores how existing pedestrian and parking data can be used to support city planners and event organisers in selecting more suitable and data-driven locations for hosting events, with the goal of improving public accessibility, reducing congestion, and enhancing overall urban management.
As a city planner, I want to analyse footfall and parking data so I can designate zones that are best suited for public and private events in Melbourne.
As an event planner, I want to identify locations that match the nature of the event (e.g., small gathering vs. public concert) so I can select sites with either high public engagement or greater privacy and accessibility.
As an urban policy adviser, I want to understand pedestrian dynamics and parking availability so that I can recommend improvements to Melbourne’s urban planning strategies.
Application of clustering (KMeans) for unsupervised classification of real-world spatial data.
Use of geospatial analysis and buffer-based joins to integrate footfall and parking data.
Visualisation using interactive maps (Folium) for decision-making.
Scenario-based reasoning using real public datasets.
Application of data-driven insights to guide urban planning and event management.
Melbourne is one of the most vibrant cities in Australia, known for its frequent public events, cultural festivals, and private functions. With limited public space and fluctuating pedestrian activity, it becomes important to choose event locations that align with crowd patterns and access infrastructure.
This project focuses on analysing pedestrian sensor data and parking availability to identify areas best suited for public and private events. Public events benefit from areas with high visibility and foot traffic, while private events require less crowded, more accessible zones. This data-driven approach supports better planning, reduced disruption, and efficient use of urban space.
This use case integrates four different datasets, each contributing to various aspects of spatial and event analysis:
Pedestrian Sensor Location Data
Contains metadata for fixed pedestrian sensors across Melbourne,
including sensor names, installation dates, status, orientation, and
geographic coordinates (latitude, longitude). This dataset was used to
map and identify sensor locations spatially.
Pedestrian Count Data
Hourly pedestrian counts from each sensor, indexed by
location_id and sensing_date. This data was
aggregated to calculate average daily and hourly pedestrian footfall,
which formed the basis for clustering and identifying high-traffic
areas.
Parking Data
Geospatial data indicating available parking locations across the city,
with fields such as roadsegmentdescription,
latitude, and longitude. This was used to
assess parking availability within a 150-meter radius of pedestrian
sensors to support the identification of private event zones.
https://data.melbourne.vic.gov.au/explore/dataset/on-street-parking-bays/information/
Event Registry Data
A supplementary dataset listing previously held events across Melbourne,
including event titles, start/end dates, categories (e.g., filming,
music). This was reviewed to understand the nature of the events planned
in last few years.
| location_id | sensor_description | sensor_name | installation_date | note | location_type | status | direction_1 | direction_2 | latitude | longitude | location | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 24 | Spencer St-Collins St (North) | Col620_T | 2013-09-02 | NaN | Outdoor | A | East | West | -37.818880 | 144.954492 | -37.81887963, 144.95449198 |
| 1 | 25 | Melbourne Convention Exhibition Centre | MCEC_T | 2013-08-28 | NaN | Outdoor | A | East | West | -37.824018 | 144.956044 | -37.82401776, 144.95604426 |
| 2 | 36 | Queen St (West) | Que85_T | 2015-01-20 | Pushbox Upgrade, 03/08/2023 | Outdoor | A | North | South | -37.816525 | 144.961211 | -37.81652527, 144.96121062 |
| 3 | 41 | Flinders La-Swanston St (West) | Swa31 | 2017-06-29 | NaN | Outdoor | A | North | South | -37.816686 | 144.966897 | -37.81668634, 144.96689733 |
| 4 | 44 | Tin Alley-Swanston St (West) | UM3_T | 2015-04-15 | Pushbox Upgrade, 30/06/2023 | Outdoor | A | North | South | -37.796987 | 144.964413 | -37.79698741, 144.96441306 |
| title | event_start | event_end | category_1 | category_2 | location | |
|---|---|---|---|---|---|---|
| 0 | Anthony | 2015-02-17 | 2015-02-17 | Filming - Movie | NaN | Inner Suburb Locations |
| 1 | Spirit Of The Game | 2015-08-18 | 2015-08-18 | Filming - Movie | NaN | Carlton Gardens |
| 2 | Ali's Wedding | 2015-11-30 | 2015-11-30 | Filming - Movie | NaN | Inner Suburb Locations |
| 3 | Dogfight | 2016-08-23 | 2016-08-23 | Filming - Movie | NaN | Inner Suburb Locations |
| 4 | Dogfight Unit Base | 2016-09-21 | 2016-09-21 | Filming - Movie | NaN | Flagstaff Gardens |
| id | location_id | sensing_date | hourday | direction_1 | direction_2 | pedestriancount | sensor_name | location | |
|---|---|---|---|---|---|---|---|---|---|
| 0 | 39420220226 | 39 | 2022-02-26 | 4 | 6 | 2 | 8 | AlfPl_T | -37.81379749, 144.96995745 |
| 1 | 141720230914 | 14 | 2023-09-14 | 17 | 1021 | 230 | 1251 | SanBri_T | -37.82011242, 144.96291897 |
| 2 | 401120220119 | 40 | 2022-01-19 | 11 | 92 | 121 | 213 | Spr201_T | -37.80999341, 144.97227587 |
| 3 | 361120220101 | 36 | 2022-01-01 | 11 | 43 | 29 | 72 | Que85_T | -37.81652527, 144.96121062 |
| 4 | 851020211222 | 85 | 2021-12-22 | 10 | 96 | 74 | 170 | 488Mac_T | -37.79432415, 144.92973378 |
| roadsegmentid | kerbsideid | roadsegmentdescription | latitude | longitude | lastupdated | location | |
|---|---|---|---|---|---|---|---|
| 0 | 22377 | NaN | The Avenue between MacArthur Road and Gatehous... | -37.791116 | 144.957604 | 2023-10-31 | -37.7911156, 144.9576042 |
| 1 | 22377 | NaN | The Avenue between MacArthur Road and Gatehous... | -37.791013 | 144.957570 | 2023-10-31 | -37.7910129, 144.9575696 |
| 2 | 22377 | NaN | The Avenue between MacArthur Road and Gatehous... | -37.790961 | 144.957556 | 2023-10-31 | -37.7909613, 144.9575557 |
| 3 | 22377 | NaN | The Avenue between MacArthur Road and Gatehous... | -37.790806 | 144.957525 | 2023-10-31 | -37.7908061, 144.9575254 |
| 4 | 22377 | NaN | The Avenue between MacArthur Road and Gatehous... | -37.790435 | 144.957467 | 2023-10-31 | -37.7904352, 144.9574667 |
Shapes of dataframes
Parking df : (23864, 7)
Event df : (2827, 6)
Pedestrian df : (2305280, 9)
Parking sensor location : (139, 12)
How many events?
This section outlines the types of permitted events that took place in the Melbourne city area between 2014 and 2018. Insights drawn from this dataset will be used in the project to identify common event types and their typical time frames. This information will also support the analysis of the most suitable locations and optimal timings for hosting various events across the city.
What kind of events?
category_1
Wedding 615
Public Event - Non-ticketed 511
Promotion 430
Filming - TV Series 200
Public Event - Run Walk 198
Filming - TVC 158
Public Event - Ticketed 111
Public Event - Low Impact Activity 92
Filming - Photo shoot 90
Private Event 87
Filming - Unit Base 58
Filming - Student 57
Public Event - Music Event 41
Filming - Other 40
Public Event - Media/Launch Event 36
Public Event - Memorial 25
Filming - Movie 21
Public Event - Cycling Event 19
Public Event - Parade 16
Public Event - Music 6
Public Event - Cycling 3
Filming - TV Series, Filming - Unit 2
Public Event - Media Launch 2
Public Event - Outside Broadcast 2
Filming -- Other 1
Filming - TVC, Recreation and Sport 1
Private Event - 1
Public Event - Media Launch Event 1
Filming - TV Series Filming - TV Series 1
Public Event 1
Public Event - Low Impact Activity, 1
Name: count, dtype: int64
According to the results above, the dataset contains a large number of event categories, which makes the analysis more complex than necessary. To simplify the analysis, it would be more effective to introduce a new classification that groups events under broader categories such as “Public” and “Private” events.

The bar chart shows that from 2014 to 2018, Melbourne hosted 2827 events in total including slightly more Public events (1,495) than Private events (1,332). This indicates a fairly balanced distribution, with public events being just a bit more common.

Public vs Private Events by Category (2014–2018)
This distribution highlights that public spaces in Melbourne were frequently used for community and promotional purposes, whereas private events were focused on personal celebrations and media production.
| title | event_start | event_end | category_1 | category_2 | location | event_type | |
|---|---|---|---|---|---|---|---|
| 0 | Anthony | 2015-02-17 | 2015-02-17 | Filming - Movie | NaN | Inner Suburb Locations | Private |
| 1 | Spirit Of The Game | 2015-08-18 | 2015-08-18 | Filming - Movie | NaN | Carlton Gardens | Private |
| 2 | Ali's Wedding | 2015-11-30 | 2015-11-30 | Filming - Movie | NaN | Inner Suburb Locations | Private |
| 3 | Dogfight | 2016-08-23 | 2016-08-23 | Filming - Movie | NaN | Inner Suburb Locations | Private |
| 4 | Dogfight Unit Base | 2016-09-21 | 2016-09-21 | Filming - Movie | NaN | Flagstaff Gardens | Private |
# Define subcategory logic
def classify_event(row):
if row['event_type'] == 'Private':
if 'Wedding' in row['category_1']:
return 'Wedding'
elif 'Filming' in row['category_1']:
return 'Filming'
else:
return 'Other'
elif row['event_type'] == 'Public':
if 'Non-ticketed' in row['category_1']:
return 'Non-ticketed'
elif 'Promotion' in row['category_1']:
return 'Promotion'
else:
return 'Other'
return 'Unknown'
# Apply subcategory classification
event_df['sub_category'] = event_df.apply(classify_event, axis=1)
This trend highlights a strong preference for organizing public events in warmer, more favorable weather conditions, particularly during spring.

This contrast highlights how weather and outdoor suitability primarily impact personal celebrations like weddings, while media productions maintain steady demand year-round.

This boxplot shows that most locations and times have low pedestrian counts, usually under 500.
But there are also many higher values, going up to nearly 10,000. They likely come from busy areas like the city center or places with special events. So, the data clearly shows that foot traffic can change a lot depending on the location and time.

The histogram shows that most pedestrian counts are low, with a large number of records having lower counts. This is expected in a city environment, where only a few places like CBDs or event areas experience very high foot traffic.

The line chart illustrates the average pedestrian count in Melbourne throughout a typical day, based on data aggregated from multiple sensor locations.
The data shows a clear pattern of pedestrian movement across 24 hours:
This pattern provides insight into when foot traffic is at its highest and lowest across the city, which is valuable for event timing, resource planning, and urban management.

This chart shows the top 10 busiest locations based on average pedestrian count. Flinders La–Swanston St (West), Elizabeth Street, and Southbank are among the most active areas, making the areas around them suitable for large public events or campaigns.
The map displays pedestrian sensor locations across the city of Melbourne, clustered based on their average pedestrian count. Each point on the map is color-coded to indicate the level of pedestrian activity:
The clustering approach helps identify areas of high and low pedestrian activity across the city.
High and moderate footfall locations are mostly concentrated around central Melbourne, indicating their suitability for public events. In contrast, low and very low footfall areas are found around the outer zones, suggesting their potential for private events, especially when supported by nearby parking availability.
This is an interactive map, allowing users to click on each location to view additional information such as the sensor name, average daily count, and a line chart showing the hourly pedestrian trend. This feature provides deeper insights and supports more informed event planning decisions.